热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

上限|事例_Linux学习iptables操作

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux学习-iptables操作相关的知识,希望对你有一定的参考价值。iptables操作事例

篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux学习-iptables操作相关的知识,希望对你有一定的参考价值。



iptables操作事例

#获取filter表中的规则链信息
[root@nginx02 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#创建一个自定义链名为IN_public
[root@nginx02 ~]# iptables -t filter -N IN_public
#查看filter链
[root@nginx02 ~]# iptables -t filter -L
...
Chain IN_public (0 references)
target prot opt source destination
#自定义链没有被引用,可以通过-E参数进行自定义链重命名
[root@nginx02 ~]# iptables -t filter -E IN_public OUT_public
[root@nginx02 ~]# iptables -t filter -L
...
Chain OUT_public (0 references)
target prot opt source destination
#清空链
[root@nginx02 ~]# iptables -F
#清除所有规则
[root@nginx02 ~]# iptables -X
#修改链的匹配规则
[root@nginx02 ~]# iptables -t filter -P FORWARD DROP
[root@nginx02 ~]# iptables -L -n
...
Chain FORWARD (policy DROP)
target prot opt source destination
...
#显示指定规则的号码
[root@nginx02 ~]# iptables -L -n --line-numbers
...
Chain IN_public (2 references)
num target prot opt source destination
1 IN_public_log all -- 0.0.0.0/0 0.0.0.0/0
2 IN_public_deny all -- 0.0.0.0/0 0.0.0.0/0
...
#删除FORWARD链上的第9条规则
[root@nginx02 ~]# iptables -D FORWARD 9
#指定源地址为任意地址,目标地址为本机,且为TCP协议的所有数据包均放行
[root@nginx02 ~]# iptables -t filter -A INPUT -d 192.168.88.102 -p tcp -j ACCEPT
[root@nginx02 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 192.168.88.102
#指定由本机发出的TCP协议报文与任意主机进行通信都放行
[root@nginx02 ~]# iptables -t filter -A OUTPUT -s 192.168.88.102 -p tcp -j ACCEPT
[root@nginx02 ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 192.168.88.102
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.88.102 0.0.0.0/0
#修改指定链的target为drop
[root@nginx02 ~]# iptables -P INPUT DROP
[root@nginx02 ~]# iptables -P OUTPUT DROP
[root@nginx02 ~]# iptables -P FORWARD DROP
[root@nginx02 ~]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 192.168.88.102
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 192.168.88.102 0.0.0.0/0
#开启本机[192.168.88.102]ping,80,22对外访问的规则
[root@nginx02 ~]# iptables -t filter -A INPUT -d 192.168.88.102 -p icmp -j ACCEPT
[root@nginx02 ~]# iptables -t filter -A OUTPUT -s 192.168.88.102 -p icmp -j ACCEPT
#放行SSH(22端口)服务
[root@nginx02 ~]# iptables -A OUTPUT -p tcp --sport=22 -s 192.168.88.102 -j ACCEPT
[root@nginx02 ~]# iptables -A INPUT -p tcp --dport=22 -d 192.168.88.102 -j ACCEPT
#放行http(80端口)服务
[root@nginx02 ~]# iptables -A OUTPUT -p tcp --sport=80 -s 192.168.88.102 -j ACCEPT
[root@nginx02 ~]# iptables -A INPUT -p tcp --dport=80 -d 192.168.88.102 -j ACCEPT
#查看设置的规则
[root@nginx02 ~]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 192.168.88.102 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 192.168.88.102 tcp dpt:80
ACCEPT icmp -- 0.0.0.0/0 192.168.88.102
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 192.168.88.102 0.0.0.0/0 tcp spt:22
ACCEPT tcp -- 192.168.88.102 0.0.0.0/0 tcp spt:80
ACCEPT icmp -- 192.168.88.102 0.0.0.0/0
#查看内核模块nf_conntrack
[root@nginx02 netfilter]# pwd
/lib/modules/3.10.0-862.el7.x86_64/kernel/net/netfilter
[root@nginx02 netfilter]# modinfo nf_conntrack_ftp
filename: /lib/modules/3.10.0-862.el7.x86_64/kernel/net/netfilter/nf_conntrack_ftp.ko.xz
alias: nfct-helper-ftp
alias: ip_conntrack_ftp
description: ftp connection tracking helper
author: Rusty Russell <rusty&#64;rustcorp.com.au>
license: GPL
retpoline: Y
rhelversion: 7.5
srcversion: 83D9304C9B64D8FBC064040
depends: nf_conntrack
intree: Y
vermagic: 3.10.0-862.el7.x86_64 SMP mod_unload modversions
signer: CentOS Linux kernel signing key
sig_key: 3A:F3:CE:8A:74:69:6E:F1:BD:0F:37:E5:52:62:7B:71:09:E3:2B:96
sig_hashalgo: sha256
parm: ports:array of ushort
parm: loose:bool
#查看nf_conntrack当前连接数
[root&#64;nginx02 netfilter]# cat /proc/sys/net/netfilter/nf_conntrack_count
1
#查看nf_conntrack表最大连接数
[root&#64;nginx02 netfilter]# cat /proc/sys/net/netfilter/nf_conntrack_max
262144
#查看已经追踪到并记录下的连接
[root&#64;nginx02 net]# cat /proc/net/nf_conntrack
ipv4 2 tcp 6 299 ESTABLISHED src&#61;192.168.88.1 dst&#61;192.168.88.102 sport&#61;51385 dport&#61;22 src&#61;192.168.88.102 dst&#61;192.168.88.1 sport&#61;22 dport&#61;51385 [ASSURED] mark&#61;0 zone&#61;0 use&#61;2
ipv4 2 tcp 6 431982 ESTABLISHED src&#61;192.168.88.1 dst&#61;192.168.88.102 sport&#61;50469 dport&#61;22 src&#61;192.168.88.102 dst&#61;192.168.88.1 sport&#61;22 dport&#61;50469 [ASSURED] mark&#61;0 zone&#61;0 use&#61;2
ipv4 2 tcp 6 431986 ESTABLISHED src&#61;192.168.88.1 dst&#61;192.168.88.102 sport&#61;51384 dport&#61;22 src&#61;192.168.88.102 dst&#61;192.168.88.1 sport&#61;22 dport&#61;51384 [ASSURED] mark&#61;0 zone&#61;0 use&#61;2
#通过dmesg查看nf_conntrack的信息
[root&#64;nginx02 netfilter]# dmesg | grep nf_conntrack
[ 232.452376] nf_conntrack version 0.5.0 (65536 buckets, 262144 max)
[root&#64;nginx02 netfilter]# cat /proc/sys/net/netfilter/nf_conntrack_buckets
65536
[root&#64;nginx02 netfilter]# cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established
432000
#通过内核参数查看命令&#xff0c;查看所有参数配置
[root&#64;nginx02 netfilter]# sysctl -a | grep conntrack
#一次放行多个端口(-m multiport)
[root&#64;nginx02 netfilter]# iptables -I OUTPUT -s 192.168.88.102 -p tcp -m multiport --sport&#61;22,80 -j ACCEPT
[root&#64;nginx02 netfilter]# iptables -I INPUT -d 192.168.88.102 -p tcp -m multiport --dport&#61;22,80 -j ACCEPT
#指定IP地址范围(-m iprange)放行
[root&#64;nginx02 ~]# iptables -I INPUT -d 192.168.88.102 -p tcp -m iprange --src-range&#61;192.168.88.1-192.168.88.100 -m multiport --dport&#61;22,80 -j ACCEPT
[root&#64;nginx02 ~]# iptables -I OUTPUT -s 192.168.88.102 -p tcp -m iprange --dst-range&#61;192.168.88.1-192.168.88.100 -m multiport --sport&#61;22,80 -j ACCEPT
#string扩展
[root&#64;nginx02 ~]# iptables -I OUTPUT -m string --algo&#61;&#39;bm&#39; --string&#61;&#39;movie&#39; -j REJECT
#time扩展(注意时间格式问题)
[root&#64;nginx02 ~]# iptables -I INPUT -d 192.168.88.102 -p tcp --dport 80 -m time --timestart 23:39 --timestop 23:45 -j REJECT
#connlimit(同一主机并发连接数限制),限制连接上限为3
[root&#64;nginx02 ~]# iptables -I INPUT -p tcp -d 192.168.88.102 --dport 22 -m connlimit --connlimit-above&#61;3 -j REJECT
#limit扩展&#xff0c;基于收发报文速率做检查
#--limit表示速率&#xff0c;--limit-burst表示上限
[root&#64;nginx02 ~]# iptables -A INPUT -d 192.168.88.102 -p icmp --icmp-type 8 -m limit --limit-burst 5 --limit 30/minute -j ACCEPT
#--state扩展
#开通22端口
[root&#64;nginx02 ~]# iptables -I INPUT -d 192.168.88.102 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
[root&#64;nginx02 ~]# iptables -I OUTPUT -s 192.168.88.102 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#开通ping请求
[root&#64;nginx02 ~]# iptables -I INPUT -d 192.168.88.102 -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED -j ACCEPT
[root&#64;nginx02 ~]# iptables -I OUTPUT -s 192.168.88.102 -p icmp --icmp-type 0 -m state --state ESTABLISHED -j ACCEPT
#------------------开放被动模式的ftp服务
#安装vsftpd服务
[root&#64;nginx02 netfilter]# yum install -y vsftpd
#1)装载nf_conntrack_ftp模块
[root&#64;nginx02 netfilter]# modprobe nf_conntrack_ftp
[root&#64;nginx02 netfilter]# lsmod | grep ftp
nf_conntrack_ftp 18638 0
nf_conntrack 133053 7 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_conntrack_ftp,nf_conntrack_ipv4,nf_conntrack_ipv6
#2)放行请求报文
#命令连接&#xff1a;NEW,ESTABLISH
#数据连接&#xff1a;RELATED,ESTABLISHED
#放行命令连接
[root&#64;nginx02 ~]# iptables -I INPUT -d 192.168.88.102 -p tcp -m multiport --dport 21,22,80 -m state --state NEW -j ACCEPT
#放行数据连接
[root&#64;nginx02 ~]# iptables -I INPUT -d 192.168.88.102 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
#3)放行响应报文
[root&#64;nginx02 ~]# iptables -I INPUT -s 192.168.88.102 -p tcp -m state --state ESTABLISHED -j ACCEPT
#------------------开放被动模式的ftp服务
#----------------保存和重载规则
#保存规则
[root&#64;nginx02 ~]# iptables-save > /etc/sysconfig/iptables
#重载规则
[root&#64;nginx02 ~]# iptables-restore













创作打卡挑战赛


赢取流量/现金/CSDN周边激励大奖


推荐阅读
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
author-avatar
345877103_b54cd7
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有